iT邦幫忙

2024 iThome 鐵人賽

DAY 7
1
Python

使用 WiFiBoy Python 玩學機來學物聯網應用 系列 第 7

07. MicroPython 基礎語法簡介(下)

  • 分享至 

  • xImage
  •  

常用模組簡介

我們今天講介紹幾個常用的內建模組,讓您的程式設計能力,變得更厲害。

  • binascii 模組提供了一些函數,用於在二進位數據和 ASCII 表示之間進行轉換。
  • JSON 模組用來解析(解碼)和生成(編碼)JSON 資料。
  • os 模組進行檔案操作功能。

binascii

  • binascii.hexlify(data):將二進位數據轉換為十六進位表示的 ASCII 字串。
  • binascii.unhexlify(hexstr):將十六進位表示的 ASCII 字串轉換回二進位數據。
  • binascii.b2a_base64(data):將二進位數據編碼為 Base64 表示的 ASCII 字串。
  • binascii.a2b_base64(s):將 Base64 表示的 ASCII 字串解碼為二進位數據。
# 07_01.binasciiTest.py
import binascii

# 範例二進制數據
binary_data = b'Hello, WiFiBoy!'

# 二進制數據轉十六進制表示
hex_string = binascii.hexlify(binary_data)
print("十六進制表示:", hex_string)

# 十六進制表示轉回二進制數據
decoded_data = binascii.unhexlify(hex_string)
print("解碼後的二進制數據:", decoded_data)

# 二進制數據編碼為 Base64 表示
base64_string = binascii.b2a_base64(binary_data).strip()  # .strip() 去掉末尾的換行符
print("Base64 表示:", base64_string)

# Base64 表示解碼回二進制數據
decoded_base64_data = binascii.a2b_base64(base64_string)
print("解碼後的 Base64 二進制數據:", decoded_base64_data)

JSON

import json

# 範例 JSON 字串
json_string = '{"name": "Daniel", "age": 44, "isStudent": false, "courses": ["math", "science"]}'

# 解析 JSON 字串為 Python 字典
data = json.loads(json_string)

# 輸出解析後的資料
print("解析後的資料:", data)
print("名字:", data["name"])
print("年齡:", data["age"])
print("是否為學生:", data["isStudent"])
print("課程列表:", data["courses"])

# 修改資料
data["age"] = 45
data["isStudent"] = True
data["courses"].append("history")

# 將 Python 字典編碼為 JSON 字串
new_json_string = json.dumps(data)

# 輸出新的 JSON 字串
print("新的 JSON 字串:", new_json_string)

檔案操作

import os
file_name = 'example.txt'

# 建立一個檔案並寫入內容
with open(file_name, 'w') as file:
    file.write("Hello, MicroPython!\n")
    file.write("This is a simple file operation example.\n")

print(f"File '{file_name}' created and written.")

# 檔案內容
with open(file_name, 'r') as file:
    content = file.read()
    print("File content:")
    print(content)

# 追加内容寫入到先前檔案
with open(file_name, 'a') as file:
    file.write("Appending a new line to the file.\n")

print(f"Content appended to '{file_name}'.")

# 删除檔案
try:
    os.remove(file_name)
    print(f"File '{file_name}' deleted.")
except OSError as e:
    print(f"Error deleting file '{file_name}': {e}")

參考資料

  1. ASCII 編碼
  2. JSON
  3. Micropython OS 模組文件

上一篇
06. MicroPython 基礎語法簡介(中)
下一篇
08.鍵盤輸入讀取與應用
系列文
使用 WiFiBoy Python 玩學機來學物聯網應用 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言